*.d
*.d
/testdir
+*.log
# Eclipse
/.settings
+++ /dev/null
-siridb-server (2.0.29) xenial; urgency=medium
-
- * Added filter log series by using a regular expressions. (issue #100)
-
- * Fixed bug with long log values. (issue #102)
-
- * Update grammar. (using a for forward reference for help)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Mon, 09 Jul 2018 14:13:07 +0000
-
-siridb-server (2.0.28) xenial; urgency=medium
-
- * Added filter options nan, inf and -inf for float series. (issue #97)
-
- * Handle invalid use of difference() and derivative() on log series.
- (issue #98)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Wed, 20 Jun 2018 13:21:27 +0000
-
-siridb-server (2.0.27) xenial; urgency=medium
-
- * Changed error message when trying to merge series into an empty destination
- name and updated test.
-
- * Change max open files when soft-limit cannot be set.
-
- * Added support for log (string) values.
-
- * Fixed bug with reading path variable.
-
- * Added stddev() aggregation function.
-
- * Added first() and last() aggregation functions.
-
- * Allow aggregation functions without a time range. When no time range is
- given, all aggregations will return a single value. The time-stamp returned
- with the value is the last within the selected time range except when using
- the first() aggregation, in that case the first time-stamp will be used.
-
- * Allow all (*) for selecting series. Keyword 'all' replaces 'points' which
- is now a deprecated keyword.
-
- * Solved compiler warnings. (issue #96)
-
- * Added the following server statistics properties:
- - active_tasks: returns the number of active tasks for the current database
- - idle_time: returns the seconds the database was idle since uptime.
- - idle_percentage: returns the percentage of idle time since uptime.
- (Note: idle mean no active tasks for the current database)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Fri, 25 May 2018 12:02:56 +0000
-
-siridb-server (2.0.26) xenial; urgency=medium
-
- * Added bind_server_address and bind_client_address as configuration
- options. The default configuration binds to localhost only. (issue #89)
-
- * Added -rf to makefiles. (fixes make clean) (#86, @paulgevers)
-
- * Replaces pcre with pcre2. (issue #90)
-
- * Make sure PATH_MAX is defined.
-
- * Added optional shard compression.
-
- * Use unsigned instead of signed char for QPack buffer.
-
- * Initialize structs to null by using memset.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Tue, 02 Jan 2018 09:37:43 +0000
-
-siridb-server (2.0.25) xenial; urgency=medium
-
- * Removed obsolete strlen() call when creating a new series.
-
- * Fixed bug in ctree when looping over items. (issue #84)
-
- * Removed signal raising from all collection classes.
-
- * Removed ct_get_sure() function and improved the ct_get(), ct_getn() and
- ct_getaddr() functions.
-
- * Improved imap_get() function.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Thu, 05 Oct 2017 07:09:19 +0000
-
-siridb-server (2.0.24) xenial; urgency=medium
-
- * Implemented time-precision for select statements. We can later extend the
- query language with support for querying with another time-precision.
-
- * When queue-full status is set, leave it set even when a new status update
- is received.
-
- * Mark a server as unavailable when a time-out on a flags package is
- received. The unavailable status prevents sending select queries and
- insert new data to this server. This status flag will never be applied to
- the 'last' server in a pool and will be removed when a new status update
- from the flagged server is received.
-
- * Cleanup optimize task in case a memory allocation error has occurred.
-
- * Fixed QPack length check for strings. Corrupt or invalid qpack data can
- contain a string length which is not actually available within the data.
- This fix corrects the check for such invalid string length.
-
- * Replaced int with int64_t where required in expr.c.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Wed, 13 Sep 2017 06:46:21 +0000
-
-siridb-server (2.0.23) xenial; urgency=medium
-
- * Test before defining macro _GNU_SOURCE.
-
- * Better use of inline functions and resolved compiler warnings.
-
- * Prevent error messages to grow larger than the maximum size. (issue #82)
-
- * Change return value for siridb_shard_status() from void to int containing
- the number of characters written.
-
- * Updated ct_items() callback function and added the length of the key.
- The key is no longer terminated so the length must be used.
-
- * Updated the node object for ctree with the key length so we can skip a
- few strlen() calls when doing a lookup.
-
- * We do not save the terminator character on ctree nodes anymore. All get and
- set functions are updated to work without the string termination.
-
- * Removed unused ct_itemsn() function. Since ct_items() shared logic with
- this function we could also clean some additional code.
-
- * Added -Wextra compiler option in all .mk files.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Tue, 05 Sep 2017 06:43:17 +0000
-
-siridb-server (2.0.22) xenial; urgency=medium
-
- * Added two new server properties, fifo_files and selected_points.
- (issue #41)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Tue, 15 Aug 2017 07:39:12 +0000
-
-siridb-server (2.0.21) xenial; urgency=medium
-
- * Use points_map for caching series data when multiple select requests are
- used in a single query. (issue #76)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Mon, 10 Jul 2017 11:43:31 +0000
-
-siridb-server (2.0.20-1) xenial; urgency=medium
-
- * Include libcleri in deb package.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Mon, 03 Jul 2017 09:09:44 +0000
-
-siridb-server (2.0.20) xenial; urgency=medium
-
- * Replaced a few tabs with spaces for indentation.
-
- * Improve startup speed by creating separate index files for the shards
- while optimizing. (issue #75)
-
- * Fixed accidentally removing a shard from the index by the optimize thread.
- This was very unlikely to happen but technically a shard could be dropped
- and been re-created between checking the shard flags and locking the
- shards mutex for replacing the shard in the index.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Fri, 30 Jun 2017 20:50:13 +0000
-
-siridb-server (2.0.19) xenial; urgency=medium
-
- * Get the realpath for the default configuration path. (issue #72)
-
- * Set correct array length for signal handlers.
-
- * Cleanup some debug code.
-
- * Check for successful malloc uv_loop.
-
- * Changed socket code and simplified buffer.
-
- * Added a promises queue limit which prevents overwriting a pid in the
- promises queue and prevents adding an insane amount of requests to a
- single server. (issue #73)
-
- * Removed "cleri" from the source code and replaced this with libcleri.
- https://github.com/transceptor-technology/libcleri
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Thu, 29 Jun 2017 07:54:41 +0000
-
-siridb-server (2.0.18) xenial; urgency=medium
-
- * Removed line `#include <linux/limits.h>` from `xpath`. (issue #67)
-
- * Write .reindex file when adding a new pool. (issue #69)
-
- * Update help files.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Tue, 02 May 2017 08:18:55 +0000
-
-siridb-server (2.0.17) xenial; urgency=medium
-
- * Removed duplicated function sirinet_pkg_copy() which is replaced with
- sirinet_pkg_dup().
-
- * Fixed missing include (inttypes.h) in procinfo.c.
-
- * Changed link location from /usr/sbin to /usr/local/bin in deb package.
-
- * Limits for returning data points and list items can now be configured.
- (issue #64)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Tue, 25 Apr 2017 10:07:32 +0000
-
-siridb-server (2.0.16) xenial; urgency=medium
-
- * Fixed bug resize macro in qpack for packing >4GB large strings.
-
- * Fixed bug in time-zone name checking. (issue #61)
-
- * Prevent loading database when buffer file is not found.
-
- * Implemented API calls for managing databases: (issue #60)
- - change-password : Change password for a service account
- - drop-account : Remove a service account
- - get-accounts : Returns all service accounts
- - get-databases : Returns all database names
- - get-version : Returns version information
- - new-account : Create a service account
- - new-database : Create a new database
- - new-pool : Create a new pool for an existing database
- - new-replica : Create a new replica for an existing database
- SiriDB Admin Tool can be used to talk with the new API and provides both a
- command-line and a graphical web interface. Pre-compiled versions for
- different platforms can be found and downloaded from:
- https://github.com/transceptor-technology/siridb-admin/releases/latest
-
- * Added version check before creating a new pool or replica. (issue #62)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Fri, 07 Apr 2017 08:26:14 +0000
-
-siridb-server (2.0.15) xenial; urgency=medium
-
- * Removed LDFLAGS from *.mk files and format makefile (@deem0n, issue #58)
-
- * Added logging for invalid user authentication requests.
-
- * Update constants for running test scripts.
-
- * Keywords are now correctly set using case sensitive mode.
-
- * Fixed NULL check on auth request.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Wed, 22 Mar 2017 10:30:39 +0000
-
-siridb-server (2.0.14) xenial; urgency=medium
-
- * Inluding CFLAGS and LDFLAGS in mk files for better building support.
- (reported by @deem0n, issue #52)
-
- * Fixed error in choice.c which was causing an error on 32bit systems.
- (reported by @AlmiS, issue #53)
-
- * Removed crypt dependency for building on (Mac) OSX. (issue #54)
-
- * Fixed some warnings for building on (Mac) OSX.
-
- * Fixed locking database on (Mac) OSX. (issue #55)
-
- * Implemented memory usage and open files information on (Mac) OSX.
- (issue #56)
-
- * Added limit aggregation functionality. When using limit, a maximum number
- of points argument is used with an aggregation function. The aggrgation
- function is used only when more than the maximum number of points are
- found. (issue #57)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Tue, 28 Feb 2017 15:24:48 +0000
-
-siridb-server (2.0.13) xenial; urgency=medium
-
- * Fixed wrapping imap to slist functions with appropriate locks.
- (see issue #51)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Fri, 17 Feb 2017 13:46:53 +0000
-
-siridb-server (2.0.12) xenial; urgency=medium
-
- * Update help files.
-
- * Fixed bug in ctree which could occur when merging series. (issue #49)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Mon, 09 Jan 2017 08:03:21 +0000
-
-siridb-server (2.0.11) xenial; urgency=medium
-
- * Pre allocate buffer space which improves performance for creating new
- series. (see issue #47)
-
- * Fixed sending a correct error message to a client for list and count
- statements in case a specific series does not exist. (issue #48)
-
- * Update help files.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Mon, 05 Dec 2016 09:47:10 +0000
-
-siridb-server (2.0.10) xenial; urgency=medium
-
- * Fixed using a buffer path larger or close to PATH_MAX. (issue #43)
-
- * Fixed shard_get_size() problem with treading by replacing the function
- call with a property. (issue #44)
-
- * Fixed identifying a corrupt shard when an invalid header size is found
- at the end of a shard while loading a database. (issue #45)
-
- * Re-use space in buffer when series are dropped. (issue #46)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Tue, 22 Nov 2016 15:05:07 +0000
-
-siridb-server (2.0.9) xenial; urgency=medium
-
- * Use macros for formatting integer types instead of casting to a specific
- type.
-
- * Removed unneeded 'siridb_mutex' from heart-beat task.
-
- * Fixed possible double free on socket. (see issue #39)
-
- * Fixed reading an alternative buffer path from the configuration file.
- (issue #40)
-
- * Fixed dropping shards when followed by an optimize task. (issue #42)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Thu, 10 Nov 2016 08:21:07 +0000
-
-siridb-server (2.0.8) xenial; urgency=medium
-
- * Add source IP to logging when an invalid package is received. (issue #38)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Mon, 07 Nov 2016 12:46:44 +0000
-
-siridb-server (2.0.7) xenial; urgency=medium
-
- * Fixed memory leak in "alter group set expression". (issue #36)
-
- * Fixed bug in saving groups when groups are created while the statement
- did not end with the expression, but with an extra space or comment.
- (see issue #37)
-
- * Added __restrict keyword for extra optimizations.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Mon, 07 Nov 2016 11:04:52 +0000
-
-siridb-server (2.0.6) xenial; urgency=medium
-
- * Fixed memory leak when using multiple regular expressions in one query.
- (issue #33)
-
- * Fixed memory leak in difference, symmetric_difference and intersection
- functions on the imap object. (see issue #34)
-
- * Fixed memory leak when creating an invalid group. (issue #35)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Fri, 04 Nov 2016 21:03:31 +0000
-
-siridb-server (2.0.5) xenial; urgency=medium
-
- * Changed CLOCK_REALTIME to CLOCK_MONOTONIC for monitoring startup time.
-
- * Fixed bug using filter aggregation. (issue #29)
-
- * Fixed bug in median, median_low and median_high when using on series
- with large values. (issue #30)
-
- * Check for successful memory allocations in cexpr object.
-
- * Wrap socket around uv_tcp_t instead of two separate mallocs.
-
- * Fixed possible stack overflow error by checking for a max recursion depth
- when parsing a query. (issue #31)
-
- * Fixed possible stack overflow error by checking for a maximum query length.
- (see issue #32)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Thu, 03 Nov 2016 13:34:15 +0000
-
-siridb-server (2.0.4) xenial; urgency=medium
-
- * Fixed bug in fifo buffer. (see issue #28)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Mon, 31 Oct 2016 14:21:27 +0000
-
-siridb-server (2.0.3) xenial; urgency=medium
-
- * Fixed bug in network handler. The wrong size could be allocated when
- receiving multiple packages in a stream. (issue #27)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Thu, 27 Oct 2016 20:41:58 +0000
-
-siridb-server (2.0.2) xenial; urgency=medium
-
- * Check user for permissions when inserting data. Only authentication was
- checked, not if the user had 'insert' privileges. (issue #16)
-
- * Minor performance updates by creating macros for frequently used
- functions. (see issue #17 for more info)
-
- * Store reference counter for a series object in an uint32_t. This solves
- a bug on big endian systems. (issue #18)
-
- * Remove server_id and idx_tp from series object and set those as flags.
- This removed the unneeded pads and saves 8 bytes for each series object.
-
- * Honor ip_support setting when sending a dns request. (issue #19)
-
- * Fixed a bug in listing and counting servers when using one of the
- properties 'sync_progress' or 'reindex_progress'.
- (reported by Koos Joosten, issue #20)
-
- * Fixed a bug when a select query is using a greater start time than end
- time. Instead of trying to answer to the query we now respond with an
- error informing the user the given query is not allowed.
- (reported by Koos Joosten, issue #21)
-
- * Fixed typo in log message.
-
- * Fixed bug in median (and median_low, median_high) when applying on a large
- data set. (reported by Koos Joosten, issue #22)
-
- * Improve median, median_high and median_low algorithm. (see issue #23)
-
- * Fixed bug in 'drop series' statement. (reported by Koos Joosten, issue #24)
-
- * Fixed bug in creating a new replica. Possible data loss could occur when
- creating a new replica. (see issue #25)
-
- * Fixed bug in dropping items from the internal compact tree.
- (reported by Koos Joosten, issue #26)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Wed, 26 Oct 2016 13:42:39 +0000
-
-siridb-server (2.0.1) xenial; urgency=medium
-
- * Only try to load a database from a directory containing at least the
- files 'database.conf' and 'database.dat'. This prevents trying to load
- from directories like lost+found etc. (issue #1)
-
- * Increased UV_THREADPOOL_SIZE from four to eight and prevent SiriDB
- from loading more than four databases. (issue #2)
-
- * Removed unneeded msgpack.h dependency. (issue #3)
-
- * To prevent compile warning on 32-bit linux we now cast int64_t and uint64_t
- to "lld" (long long) and "llu" (unsigned long long). (issue #4)
-
- * Dependencies in cleri (with siridb) are removed. (issue #5)
-
- * Respond with BPROTO_AUTH_ERR_UNKNOWN_UUID in case the authentication
- request contains the servers own UUID. (issue #6)
-
- * Added CPROTO_REQ_FILE_GROUPS to type translate function. (issue #7)
-
- * Added support for an optimize interval of zero which disables the
- optimize task. (enhancement issue #8)
-
- * Implemented configuration file changes (see issue #9)
-
- * Fixed resolving an ip address for a given hostname or fqdn. (for more
- information see issue #10)
-
- * Fixed writing uninitialized data while enabling or disabling backup mode
- by setting the correct package size. (issue #11)
-
- * Accept a variable %HOSTNAME in the configuration file. This is now used
- for the default value, 'server_name = %HOSTNAME:9010'. (issue #12)
-
- * Parse ipv6 addresses given in the configuration file correctly.
- (see issue #13)
-
- * Added support for ipv6 while discovering an address using dns. (issue #14)
-
- * Added property 'ip_support' to the grammar so we can view the current
- setting with 'show' and 'list servers'. (issue #15)
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Fri, 21 Oct 2016 14:31:20 +0000
-
-siridb-server (2.0.0) xenial; urgency=medium
-
- * Initial C-implementation of SiriDB. This improves the overall performance
- and at the same time is more robuust.
-
- -- Jeroen van der Heijden <jeroen@transceptor.technology> Wed, 19 Oct 2016 11:47:08 +0000
-
+++ /dev/null
- * SiriDB Server can now compile with gnu89/gnu90. (#101)
-
- * Removed deprecated info- and loaddb requests.
-
- * Added named pipe support. (#104, @pavelxdd)
-
- * Changed writing buffer length to reduce random io.
-
- * Added option to fsync the buffer on a configurable interval.
-
- * Use posix_fadvise() on the buffer file. (@Svedrin)
-
- * The buffer size can now be adjusted by using the database.conf
- configuration file.
-
- * Added conversion of invalid value types.
\ No newline at end of file
+++ /dev/null
- * Initial C-implementation of SiriDB. This improves the overall performance
- and at the same time is more robuust.
\ No newline at end of file
+++ /dev/null
- * Only try to load a database from a directory containing at least the
- files 'database.conf' and 'database.dat'. This prevents trying to load
- from directories like lost+found etc. (issue #1)
-
- * Increased UV_THREADPOOL_SIZE from four to eight and prevent SiriDB
- from loading more than four databases. (issue #2)
-
- * Removed unneeded msgpack.h dependency. (issue #3)
-
- * To prevent compile warning on 32-bit linux we now cast int64_t and uint64_t
- to "lld" (long long) and "llu" (unsigned long long). (issue #4)
-
- * Dependencies in cleri (with siridb) are removed. (issue #5)
-
- * Respond with BPROTO_AUTH_ERR_UNKNOWN_UUID in case the authentication
- request contains the servers own UUID. (issue #6)
-
- * Added CPROTO_REQ_FILE_GROUPS to type translate function. (issue #7)
-
- * Added support for an optimize interval of zero which disables the
- optimize task. (enhancement issue #8)
-
- * Implemented configuration file changes (see issue #9)
-
- * Fixed resolving an ip address for a given hostname or fqdn. (for more
- information see issue #10)
-
- * Fixed writing uninitialized data while enabling or disabling backup mode
- by setting the correct package size. (issue #11)
-
- * Accept a variable %HOSTNAME in the configuration file. This is now used
- for the default value, 'server_name = %HOSTNAME:9010'. (issue #12)
-
- * Parse ipv6 addresses given in the configuration file correctly.
- (see issue #13)
-
- * Added support for ipv6 while discovering an address using dns. (issue #14)
-
- * Added property 'ip_support' to the grammar so we can view the current
- setting with 'show' and 'list servers'. (issue #15)
\ No newline at end of file
+++ /dev/null
- * Fixed using a buffer path larger or close to PATH_MAX. (issue #43)
-
- * Fixed shard_get_size() problem with treading by replacing the function
- call with a property. (issue #44)
-
- * Fixed identifying a corrupt shard when an invalid header size is found
- at the end of a shard while loading a database. (issue #45)
-
- * Re-use space in buffer when series are dropped. (issue #46)
\ No newline at end of file
+++ /dev/null
- * Pre allocate buffer space which improves performance for creating new
- series. (see issue #47)
-
- * Fixed sending a correct error message to a client for list and count
- statements in case a specific series does not exist. (issue #48)
-
- * Update help files.
\ No newline at end of file
+++ /dev/null
- * Update help files.
-
- * Fixed bug in ctree which could occur when merging series. (issue #49)
\ No newline at end of file
+++ /dev/null
- * Fixed wrapping imap to slist functions with appropriate locks.
- (see issue #51)
\ No newline at end of file
+++ /dev/null
- * Inluding CFLAGS and LDFLAGS in mk files for better building support.
- (reported by @deem0n, issue #52)
-
- * Fixed error in choice.c which was causing an error on 32bit systems.
- (reported by @AlmiS, issue #53)
-
- * Removed crypt dependency for building on (Mac) OSX. (issue #54)
-
- * Fixed some warnings for building on (Mac) OSX.
-
- * Fixed locking database on (Mac) OSX. (issue #55)
-
- * Implemented memory usage and open files information on (Mac) OSX.
- (issue #56)
-
- * Added limit aggregation functionality. When using limit, a maximum number
- of points argument is used with an aggregation function. The aggrgation
- function is used only when more than the maximum number of points are
- found. (issue #57)
\ No newline at end of file
+++ /dev/null
- * Fixed bug resize macro in qpack for packing >4GB large strings.
-
- * Fixed bug in time-zone name checking. (issue #61)
-
- * Prevent loading database when buffer file is not found.
-
- * Implemented API calls for managing databases: (issue #60)
- - change-password : Change password for a service account
- - drop-account : Remove a service account
- - get-accounts : Returns all service accounts
- - get-databases : Returns all database names
- - get-version : Returns version information
- - new-account : Create a service account
- - new-database : Create a new database
- - new-pool : Create a new pool for an existing database
- - new-replica : Create a new replica for an existing database
- SiriDB Admin Tool can be used to talk with the new API and provides both a
- command-line and a graphical web interface. Pre-compiled versions for
- different platforms can be found and downloaded from:
- https://github.com/transceptor-technology/siridb-admin/releases/latest
-
- * Added version check before creating a new pool or replica. (issue #62)
\ No newline at end of file
+++ /dev/null
- * Removed duplicated function sirinet_pkg_copy() which is replaced with
- sirinet_pkg_dup().
-
- * Fixed missing include (inttypes.h) in procinfo.c.
-
- * Changed link location from /usr/sbin to /usr/local/bin in deb package.
-
- * Limits for returning data points and list items can now be configured.
- (issue #64)
\ No newline at end of file
+++ /dev/null
- * Removed line `#include <linux/limits.h>` from `xpath`. (issue #67)
-
- * Write .reindex file when ading a new pool. (issue #69)
-
- * Update help files.
\ No newline at end of file
+++ /dev/null
- * Get the realpath for the default configuration path. (issue #72)
-
- * Set correct array length for signal handlers.
-
- * Cleanup some debug code.
-
- * Check for successful malloc uv_loop.
-
- * Changed socket code and simplified buffer.
-
- * Added a promises queue limit which prevents overwriting a pid in the
- promises queue and prevents adding an insane amount of requests to a
- single server. (issue #73)
-
- * Removed "cleri" from the source code and replaced this with libcleri.
- https://github.com/transceptor-technology/libcleri
\ No newline at end of file
+++ /dev/null
- * Check user for permissions when inserting data. Only authentication was
- checked, not if the user had 'insert' privileges. (issue #16)
-
- * Minor performance updates by creating macros for frequently used
- functions. (see issue #17 for more info)
-
- * Store reference counter for a series object in an uint32_t. This solves
- a bug on big endian systems. (issue #18)
-
- * Remove server_id and idx_tp from series object and set those as flags.
- This removed the unneeded pads and saves 8 bytes for each series object.
-
- * Honor ip_support setting when sending a dns request. (issue #19)
-
- * Fixed a bug in listing and counting servers when using one of the
- properties 'sync_progress' or 'reindex_progress'.
- (reported by Koos Joosten, issue #20)
-
- * Fixed a bug when a select query is using a greater start time than end
- time. Instead of trying to answer to the query we now respond with an
- error informing the user the given query is not allowed.
- (reported by Koos Joosten, issue #21)
-
- * Fixed typo in log message.
-
- * Fixed bug in median (and median_low, median_high) when applying on a large
- data set. (reported by Koos Joosten, issue #22)
-
- * Improve median, median_high and median_low algorithm. (see issue #23)
-
- * Fixed bug in 'drop series' statement. (reported by Koos Joosten, issue #24)
-
- * Fixed bug in creating a new replica. Possible data loss could occur when
- creating a new replica. (see issue #25)
-
- * Fixed bug in dropping items from the internal compact tree.
- (reported by Koos Joosten, issue #26)
\ No newline at end of file
+++ /dev/null
- * Replaced a few tabs with spaces for indentation.
-
- * Improve startup speed by creating separate index files for the shards
- while optimizing. (issue #75)
-
- * Fixed accidentally removing a shard from the index by the optimize thread.
- This was very unlikely to happen but technically a shard could be dropped
- and been re-created between checking the shard flags and locking the
- shards mutex for replacing the shard in the index.
\ No newline at end of file
+++ /dev/null
- * Include libcleri in deb pacakge.
\ No newline at end of file
+++ /dev/null
- * Use points_map for caching series data when multiple select requests are
- used in a single query. (issue #76)
\ No newline at end of file
+++ /dev/null
- * Added two new server properties, fifo_files and selected_points.
- (issue #41)
\ No newline at end of file
+++ /dev/null
- * Test before defining macro _GNU_SOURCE.
-
- * Better use of inline functions and resolved compiler warnings.
-
- * Prevent error messages to grow larger than the maximum size. (issue #82)
-
- * Change return value for siridb_shard_status() from void to int containing
- the number of characters written.
-
- * Updated ct_items() callback function and added the length of the key.
- The key is no longer terminated so the length must be used.
-
- * Updated the node object for ctree with the key length so we can skip a
- few strlen() calls when doing a lookup.
-
- * We do not save the terminator character on ctree nodes anymore. All get and
- set functions are updated to work without the string termination.
-
- * Removed unused ct_itemsn() function. Since ct_items() shared logic with
- this function we could also clean some additional code.
-
- * Added -Wextra compiler option in all .mk files.
\ No newline at end of file
+++ /dev/null
- * Implemented time-precision for select statements. We can later extend the
- query language with support for querying with another time-precision.
-
- * When queue-full status is set, leave it set even when a new status update
- is received.
-
- * Mark a server as unavailable when a time-out on a flags package is
- received. The unavailable status prevents sending select queries and
- insert new data to this server. This status flag will never be applied to
- the 'last' server in a pool and will be removed when a new status update
- from the flagged server is received.
-
- * Cleanup optimize task in case a memory allocation error has occurred.
-
- * Fixed QPack length check for strings. Corrupt or invalid qpack data can
- contain a string length which is not actually available within the data.
- This fix corrects the check for such invalid string length.
-
- * Replaced int with int64_t where required in expr.c.
\ No newline at end of file
+++ /dev/null
- * Removed obsolete strlen() call when creating a new series.
-
- * Fixed bug in ctree when looping over items. (issue #84)
-
- * Removed signal raising from all collection classes.
-
- * Removed ct_get_sure() function and improved the ct_get(), ct_getn() and
- ct_getaddr() functions.
-
- * Improved imap_get() function.
\ No newline at end of file
+++ /dev/null
- * Added bind_server_address and bind_client_address as configuration
- options. The default configuration binds to localhost only. (issue #89)
-
- * Added -rf to makefiles. (fixes make clean) (#86, @paulgevers)
-
- * Replaces pcre with pcre2. (issue #90)
-
- * Make sure PATH_MAX is defined.
-
- * Added optional shard compression.
-
- * Use unsigned instead of signed char for QPack buffer.
-
- * Initialize structs to null by using memset.
\ No newline at end of file
+++ /dev/null
- * Changed error message when trying to merge series into an empty destination
- name and updated test.
-
- * Change max open files when soft-limit cannot be set.
-
- * Added support for log (string) values.
-
- * Fixed bug with reading path variable.
-
- * Added stddev() aggregation function.
-
- * Added first() and last() aggregation functions.
-
- * Allow aggregation functions without a time range. When no time range is
- given, all aggregations will return a single value. The time-stamp returned
- with the value is the last within the selected time range except when using
- the first() aggregation, in that case the first time-stamp will be used.
-
- * Allow all (*) for selecting series. Keyword 'all' replaces 'points' which
- is now a deprecated keyword.
-
- * Solved compiler warnings. (issue #96)
-
- * Added the following server statistics properties:
- - active_tasks: returns the number of active tasks for the current database
- - idle_time: returns the seconds the database was idle since uptime.
- - idle_percentage: returns the percentage of idle time since uptime.
- (Note: idle mean no active tasks for the current database)
\ No newline at end of file
+++ /dev/null
- * Added filter options nan, inf and -inf for float series. (issue #97)
-
- * Handle invalid use of difference() and derivative() on log series.
- (issue #98)
+++ /dev/null
- * Added filter log series by using a regular expressions. (issue #100)
-
- * Fixed bug with long log values. (issue #102)
-
- * Update grammar. (using a for forward reference for help)
\ No newline at end of file
+++ /dev/null
- * Fixed bug in network handler. The wrong size could be allocated when
- receiving multiple packages in a stream. (issue #27)
\ No newline at end of file
+++ /dev/null
- * Fixed bug in fifo buffer. (see issue #28)
\ No newline at end of file
+++ /dev/null
- * Changed CLOCK_REALTIME to CLOCK_MONOTONIC for monitoring startup time.
-
- * Fixed bug using filter aggregation. (issue #29)
-
- * Fixed bug in median, median_low and median_high when using on series
- with large values. (issue #30)
-
- * Check for successful memory allocations in cexpr object.
-
- * Wrap socket around uv_tcp_t instead of two separate mallocs.
-
- * Fixed possible stack overflow error by checking for a max recursion depth
- when parsing a query. (issue #31)
-
- * Fixed possible stack overflow error by checking for a maximum query length.
- (see issue #32)
\ No newline at end of file
+++ /dev/null
- * Fixed memory leak when using multiple regular expressions in one query.
- (issue #33)
-
- * Fixed memory leak in difference, symmetric_difference and intersection
- functions on the imap object. (see issue #34)
-
- * Fixed memory leak when creating an invalid group. (issue #35)
\ No newline at end of file
+++ /dev/null
- * Fixed memory leak in "alter group set expression". (issue #36)
-
- * Fixed bug in saving groups when groups are created while the statement
- did not end with the expression, but with an extra space or comment.
- (see issue #37)
-
- * Added __restrict keyword for extra optimizations.
\ No newline at end of file
+++ /dev/null
- * Add source IP to logging when an invalid package is received. (issue #38)
-
\ No newline at end of file
+++ /dev/null
- * Use macros for formatting integer types instead of casting to a specific
- type.
-
- * Removed unneeded 'siridb_mutex' from heart-beat task.
-
- * Fixed possible double free on socket. (see issue #39)
-
- * Fixed reading an alternative buffer path from the configuration file.
- (issue #40)
-
- * Fixed dropping shards when followed by an optimize task. (issue #42)
\ No newline at end of file
+++ /dev/null
-#!/usr/bin/python3
-
-import sys
-import os
-import datetime
-import platform
-import subprocess
-import shutil
-import stat
-import re
-import argparse
-
-VERSION_FILE = 'include/siri/version.h'
-CHANGELOG_FILE = 'ChangeLog'
-
-
-def _version_levels():
- for n in ('MAJOR', 'MINOR', 'PATCH'):
- yield re.compile('^#define SIRIDB_VERSION_{} ([0-9]+)$'.format(n))
-
-
-def _get_version():
- version_gen = _version_levels()
- version_m = next(version_gen)
- version = []
- with open(VERSION_FILE, 'r') as f:
- content = f.readlines()
-
- for line in content:
- m = version_m.match(line)
- if m:
- version.append(m.group(1))
- try:
- version_m = next(version_gen)
- except StopIteration:
- return '.'.join(version)
-
- raise ValueError('Cannot find version in {}'.format(VERSION_FILE))
-
-
-def _get_changelog(version):
- with open('ChangeLog-{}'.format(version), 'r') as f:
- content = f.read()
- if not content:
- raise ValueError('Changelog required!')
- return content
-
-
-def _get_distribution():
- '''Returns distribution code name. (Ubuntu)'''
- proc = subprocess.Popen(['lsb_release', '-c'], stdout=subprocess.PIPE)
- for line in proc.stdout:
- if line:
- return line.decode().split('\t')[1].strip()
-
-
-if __name__ == '__main__':
- # Read the current version
- version = _get_version()
- if version is None:
- exit('Cannot find version in file: {}'.format(VERSION_FILE))
-
- parser = argparse.ArgumentParser()
-
- parser.add_argument(
- '-r',
- '--rev',
- type=int,
- default=0,
- help='Debian Revision number.')
-
- parser.add_argument(
- '-f',
- '--force',
- action='store_true',
- help='Overwrite existing build.')
-
- args = parser.parse_args()
-
- if args.rev:
- version += '-{}'.format(args.rev)
-
- # Explain architecture= amd64
- # The architecture is AMD64-compatible and Debian AMD64 will run on AMD and
- # Intel processors with 64-bit support.
- # Because of the technology paternity, Debian uses the name "AMD64".
- config = dict(
- package='siridb-server',
- version=version,
- name='Jeroen van der Heijden',
- email='jeroen@transceptor.technology',
- company='Transceptor Technology',
- company_email='info@transceptor.technology',
- datetime=datetime.datetime.utcnow().strftime(
- '%a, %d %b %Y %H:%M:%S') + ' +0000',
- architecture={
- '32bit': 'i386',
- '64bit': 'amd64'}[platform.architecture()[0]],
- archother={
- '32bit': 'i386',
- '64bit': 'x86_64'}[platform.architecture()[0]],
- homepage='https://siridb.net',
- distribution=_get_distribution(),
- curdate=datetime.datetime.utcnow().strftime('%d %b %Y'),
- year=datetime.datetime.utcnow().year,
- description='SiriDB time series database server',
- long_description='''
- SiriDB is a fast and scalable time series database.
- '''.rstrip(),
- explain='start the SiriDB time series database server',
- depends='${shlibs:Depends}, '
- '${misc:Depends}, '
- 'libuv1 (>= 1.8.0)'
- )
-
- with open(CHANGELOG_FILE, 'r') as f:
- current_changelog = f.read()
-
- if '{package} ({version})'.format(
- **config) in current_changelog:
- if not args.force:
- raise ValueError(
- 'Version {} already build. Use -r <revision> to create a new '
- 'revision number or use -f to overwrite the existing pacakge'
- .format(version))
- changelog = None
- else:
- changelog = _get_changelog(version)
- config.update(dict(
- changelog=changelog.strip()
- ))
-
- POSTINST = open(
- 'deb/POSTINST', 'r').read().strip().format(**config)
- SYSTEMD = open(
- 'deb/SYSTEMD', 'r').read().strip().format(**config)
- PRERM = open(
- 'deb/PRERM', 'r').read().strip().format(**config)
- OVERRIDES = open(
- 'deb/OVERRIDES', 'r').read().strip().format(**config)
- if changelog:
- CHANGELOG = open(
- 'deb/CHANGELOG', 'r').read().strip().format(**config)
- CONTROL = open(
- 'deb/CONTROL', 'r').read().strip().format(**config)
- MANPAGE = open(
- 'deb/MANPAGE', 'r').read().strip().format(**config)
- COPYRIGHT = open(
- 'deb/COPYRIGHT', 'r').read().strip().format(**config)
- RULES = open(
- 'deb/RULES', 'r').read().strip()
-
- temp_path = os.path.join('build', 'temp')
- if os.path.isdir(temp_path):
- shutil.rmtree(temp_path)
-
- source_path = os.path.join('Release', 'siridb-server')
- if not os.path.isfile(source_path):
- sys.exit('ERROR: Cannot find path: {}'.format(source_path))
-
- subprocess.call(['strip', '--strip-unneeded', source_path])
-
- deb_file = \
- '{package}_{version}_{architecture}.deb'.format(**config)
- source_deb = os.path.join(temp_path, deb_file)
- dest_deb = os.path.join('build', deb_file)
-
- if os.path.exists(dest_deb):
- os.unlink(dest_deb)
-
- pkg_path = os.path.join(
- temp_path,
- '{package}_{version}'.format(**config))
-
- debian_path = os.path.join(pkg_path, 'debian')
-
- pkg_src_path = os.path.join(pkg_path, 'src')
-
- debian_source_path = os.path.join(debian_path, 'source')
-
- target_path = os.path.join(pkg_src_path, 'usr', 'lib', 'siridb', 'server')
-
- os.makedirs(target_path)
- os.makedirs(debian_source_path)
-
- with open(os.path.join(debian_source_path, 'include-binaries'), 'w') as f:
- f.write('/usr/lib/libcleri.so')
-
- shutil.copy2(source_path, os.path.join(target_path, config['package']))
- shutil.copytree('help', os.path.join(target_path, 'help'))
-
- shutil.copy2(
- '/usr/lib/libcleri.so',
- os.path.join(pkg_src_path, 'usr', 'lib', 'libcleri.so'))
-
- db_path = os.path.join(pkg_src_path, 'var', 'lib', 'siridb')
- os.makedirs(db_path)
-
- cfg_path = os.path.join(pkg_src_path, 'etc', 'siridb')
- os.makedirs(cfg_path)
- shutil.copy('siridb.conf', cfg_path)
-
- systemd_path = os.path.join(target_path, 'systemd')
- os.makedirs(systemd_path)
- with open(os.path.join(
- systemd_path, '{package}.service'.format(**config)), 'w') as f:
- f.write(SYSTEMD)
-
- with open(os.path.join(debian_path, 'postinst'), 'w') as f:
- f.write(POSTINST)
-
- with open(os.path.join(debian_path, 'prerm'), 'w') as f:
- f.write(PRERM)
-
- with open(os.path.join(debian_path, 'source', 'format'), 'w') as f:
- f.write('3.0 (quilt)')
-
- with open(os.path.join(debian_path, 'compat'), 'w') as f:
- f.write('9')
-
- if changelog:
- changelog = CHANGELOG + '\n\n' + current_changelog
- with open(CHANGELOG_FILE, 'w') as f:
- f.write(changelog)
-
- shutil.copy(CHANGELOG_FILE, os.path.join(debian_path, 'changelog'))
-
- with open(os.path.join(debian_path, 'control'), 'w') as f:
- f.write(CONTROL)
-
- with open(os.path.join(debian_path, 'copyright'), 'w') as f:
- f.write(COPYRIGHT)
-
- rules_file = os.path.join(debian_path, 'rules')
- with open(rules_file, 'w') as f:
- f.write(RULES)
-
- os.chmod(rules_file, os.stat(rules_file).st_mode | stat.S_IEXEC)
-
- with open(os.path.join(debian_path, 'links'), 'w') as f:
- f.write(
- '/usr/lib/siridb/server/{package} /usr/local/bin/{package}\n'
- .format(**config))
-
- with open(os.path.join(debian_path, 'install'), 'w') as f:
- f.write('''src/usr /
-src/etc /
-src/var /''')
-
- with open(os.path.join(debian_path, '{}.1'.format(
- config['package'])), 'w') as f:
- f.write(MANPAGE)
-
- with open(os.path.join(debian_path, '{}.manpages'.format(
- config['package'])), 'w') as f:
- f.write('debian/{}.1'.format(config['package']))
-
- with open(os.path.join(debian_path, '{}.lintian-overrides'.format(
- config['package'])), 'w') as f:
- f.write(OVERRIDES)
-
- subprocess.call(['debuild', '-us', '-uc', '-b'], cwd=pkg_path)
-
- if os.path.exists(source_deb):
- shutil.move(source_deb, dest_deb)
- shutil.rmtree(temp_path)
- sys.exit('Successful created package: {}'.format(dest_deb))
- else:
- sys.exit('ERROR: {} not created'.format(source_deb))
+++ /dev/null
-{package} ({version}) {distribution}; urgency=medium
-
- {changelog}
-
- -- {name} <{email}> {datetime}
\ No newline at end of file
+++ /dev/null
-Source: {package}
-Priority: optional
-Section: database
-Maintainer: {name} <{email}>
-Standards-Version: 3.9.6
-Build-Depends: debhelper (>= 9),
- dh-exec (>=0.3),
- dh-autoreconf,
- pkg-config
-Homepage: {homepage}
-
-Package: {package}
-Depends: {depends}
-Architecture: {architecture}
-Description: {description}{long_description}
+++ /dev/null
-Name: {package}
-Maintainer: {name} <{email}>
-Source: https://github.com/transceptor-technology/{package}/
-Files: *
-Copyright: {year}, {company} <{company_email}>
-License: MIT
- Permission is hereby granted, free of charge, to any person obtaining a copy of
- this software and associated documentation files (the "Software"), to deal in
- the Software without restriction, including without limitation the rights to
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is furnished to do
- so, subject to the following conditions:
- .
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
- .
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
\ No newline at end of file
+++ /dev/null
-.\" Manpage for {package}.
-.\" Contact {email} to correct errors or typos.
-.TH man 8 "{curdate}" "1.0" "{package} man page"
-.SH NAME
-{package} \- {explain}
-.SH SYNOPSIS
-{package}
-.SH DESCRIPTION
-{description}.
-.SH OPTIONS
-See {package} --help for more information.
-.SH BUGS
-No known bugs.
-.SH AUTHOR
-{name} ({email})
\ No newline at end of file
+++ /dev/null
-{package}: postinst-has-useless-call-to-ldconfig
-{package}: postrm-has-useless-call-to-ldconfig
-{package}: dir-in-usr-local
-{package}: file-in-usr-local
-{package}: file-in-unusual-dir
-{package}: sharedobject-in-library-directory-missing-soname usr/lib/libcleri.so
+++ /dev/null
-#!/bin/bash
-
-set -e
-
-case "$1" in
-
- configure)
- # Set up SiriDB Server
- if which deb-systemd-invoke >/dev/null 2>&1 && pidof systemd >/dev/null 2>&1; then
- OUTPUT=`deb-systemd-invoke status siridb-server || true`
- if [[ $OUTPUT == *"running"* ]]; then
- echo "--------------------------------------------------------------------------------"
- echo "| type 'sudo systemctl restart siridb-server.service' to restart SiriDB |"
- echo "| ...or just reboot the machine. |"
- echo "--------------------------------------------------------------------------------"
- else
- echo "Configure systemd service 'siridb-server' ..."
- cp /usr/lib/siridb/server/systemd/siridb-server.service /lib/systemd/system/siridb-server.service
- systemctl daemon-reload || true
- deb-systemd-invoke enable siridb-server 2>/dev/null >/dev/null || true
- echo "--------------------------------------------------------------------------------"
- echo "| type 'sudo systemctl start siridb-server.service' to start SiriDB |"
- echo "| ...or just reboot the machine. |"
- echo "--------------------------------------------------------------------------------"
- fi
- else
- echo "--------------------------------------------------------------------------------"
- echo "| Please use supervisor or another deamon to start SiriDB Server |"
- echo "| It's also possible to start SiriDB manually using 'sudo siridb-server' |"
- echo "--------------------------------------------------------------------------------"
- fi
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- exit 0
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 1
- ;;
-
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
\ No newline at end of file
+++ /dev/null
-#!/bin/bash
-
-set -e
-
-case "$1" in
-
- upgrade)
- exit 0
- ;;
-
- remove|deconfigure)
- # Stop and remove service (when needed)
- if which deb-systemd-invoke >/dev/null 2>&1 && pidof systemd >/dev/null 2>&1; then
- echo "Removing systemd service '{package}' ..."
- deb-systemd-invoke stop {package} 2>/dev/null >/dev/null || true
- deb-systemd-invoke disable {package} 2>/dev/null >/dev/null || true
- rm /lib/systemd/system/{package}.service 2>/dev/null >/dev/null || true
- fi
- ;;
-
- failed-upgrade)
- exit 0
- ;;
-
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 1
- ;;
-
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
\ No newline at end of file
+++ /dev/null
-#!/usr/bin/make -f
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-# Note: before dh $0, there should be a TAB, no spaces.
-%:
- dh $@
\ No newline at end of file
+++ /dev/null
-[Unit]
-Description=SiriDB {version} Server
-After=network.target
-
-[Service]
-ExecStart=/usr/local/bin/{package} --config /etc/siridb/siridb.conf --log-level warning
-StandardOutput=journal
-LimitNOFILE=65535
-TimeoutStartSec=10
-TimeoutStopSec=300
-
-[Install]
-WantedBy=multi-user.target
\ No newline at end of file